package com.eternal.base.data.source;

import com.eternal.base.concat.*;
import com.eternal.base.data.ble.BleStatue;
import com.eternal.base.database.entity.Notification;

import java.util.List;

import io.reactivex.Flowable;
import io.reactivex.Observable;
import io.reactivex.Single;

/**
 * Created by Administrator
 * On 2020/4/24
 * Description:
 *
 * @author Administrator
 */
public interface INotificationSource {

    void setNotification(Notification notification);

    /**
     * @param notification
     */
    void addNotification(Notification notification);

    /**
     * @param mac
     */
    List<Notification> getNotifications(String mac, byte port);

    /**
     * @param mac
     * @param id
     * @param type
     */
    void deleteNotification(String mac, byte port, int id, byte type);

    /**
     * @param mac
     * @param id
     * @param type
     * @param open
     */
    void setNotificationOpen(String mac, byte port, int id, byte type, boolean open);

    /**
     * @param mac
     * @param id
     * @param type
     */
    Notification getNotification(String mac, byte port, int id, byte type);

    /**
     * @param mac
     */
    List<NotificationName> getNotificationNames(String mac, byte port);

    DeviceModelInfo getModelInfo(String mac);

    Boolean nameExists(final String mac, byte port, final String name);

    void create(Notification notification);
}